// -*- IDL -*-

/**
 * @file Domain.pidl
 *
 * $Id$
 *
 * @brief Pre-compiled IDL source for the CORBA::Domain related
 * classes.
 *
 *   This file was used to generate the code in DomainC.{h,inl,cpp}.
 *
 *   The steps to regenerate the code are as follows:
 *
 *   1. Run the tao_idl compiler on the patched pidl file.  The
 *   command used for this is:
 *
 *     tao_idl
 *        -o orig -Gp -Gd -GA
 *          -Wb,export_macro=TAO_Export
 *          -Wb,export_include=TAO_Export.h
 *          -Wb,pre_include="ace/pre.h"
 *          -Wb,post_include="ace/post.h"
 *          -Wb,versioning_begin=TAO_BEGIN_VERSIONED_NAMESPACE_DECL
 *          -Wb,versioning_end=TAO_END_VERSIONED_NAMESPACE_DECL
 *          Domain.pidl
 *
 *   2. Then patch the generated code.  This patch (a) eliminates
 *   cycles in the include dependencies.
 *
 *   Apply patches using the following commands:
 *
 *   cp orig/DomainC.{h,i,cpp} .
 *   cp orig/Domain{S,S_T}.{h,i,cpp} Domain
 *   patch < diffs/Domain.diff
 *
 *   3. You'll have to move the Domain skeleton files from TAO/tao
 *   to the TAO_Domain library by hand.
 *
 *   Note: The diffs were generated with these commands:
 *
 *   for i in DomainC.{h,cpp}; do
 *     diff -wBbu orig/$i $i;
 *   done > diffs/Domain.diff
 */

#ifndef TAO_CORBA_DOMAIN_PIDL
#define TAO_CORBA_DOMAIN_PIDL

#include "tao/Policy.pidl"
#include "tao/InterfaceDef.pidl"

#pragma prefix "omg.org"

module CORBA
{
  interface DomainManager
  {
    Policy get_domain_policy (
        in PolicyType policy_type
      );
  };

  const PolicyType SecConstruction = 11;

  interface ConstructionPolicy : Policy
  {
    void make_domain_manager (
        in InterfaceDef object_type,
        in boolean constr_policy
      );
  };

  typedef sequence <DomainManager> DomainManagerList;
};

#endif /* TAO_CORBA_DOMAIN_IDL */
